type ('s, 'a) store = Store of (('s -> 'a) * 's)
